import request from '@/utils/request'

/**
 * 车辆管理相关API接口
 * 提供车辆列表查询、车辆详情查询、新增车辆、修改车辆、删除车辆等功能
 */

/**
 * 查询车辆列表
 * @description 获取当前用户的车辆列表，支持分页和条件筛选
 * @param {Object} query 查询参数对象
 * @param {number} [query.pageNum] 页码，默认1
 * @param {number} [query.pageSize] 每页条数，默认10
 * @param {string} [query.licensePlate] 车牌号（模糊查询）
 * @returns {Promise} 返回Promise对象，resolve时包含车辆列表数据和分页信息
 */
export function getVehicleList(query) {
  return request({
    url: '/system/vehicle/myList',
    method: 'GET',
    params: query
  })
}

/**
 * 查询车辆详情
 * @description 根据车辆ID获取指定车辆的详细信息
 * @param {string|number} vehicleId 车辆ID
 * @returns {Promise} 返回Promise对象，resolve时包含车辆详细信息
 */
export function getVehicle(vehicleId) {
  return request({
    url: '/system/vehicle/' + vehicleId,
    method: 'GET'
  })
}

/**
 * 新增车辆
 * @description 添加新的车辆信息
 * @param {Object} data 车辆信息对象
 * @param {string} data.licensePlate 车牌号
 * @param {string} [data.vehicleType] 车辆类型
 * @param {string} [data.brand] 车辆品牌
 * @param {string} [data.model] 车辆型号
 * @param {string} [data.driverName] 驾驶员姓名
 * @param {string} [data.driverPhone] 驾驶员电话
 * @param {string} [data.driverLicense] 驾驶证号
 * @param {Array} [data.photos] 车辆照片列表
 * @returns {Promise} 返回Promise对象，表示新增操作的结果
 */
export function addVehicle(data) {
  return request({
    url: '/system/vehicle',
    method: 'POST',
    data: data
  })
}

/**
 * 修改车辆
 * @description 更新指定车辆的信息
 * @param {Object} data 车辆信息对象
 * @param {string|number} data.id 车辆ID
 * @param {string} [data.licensePlate] 车牌号
 * @param {string} [data.vehicleType] 车辆类型
 * @param {string} [data.brand] 车辆品牌
 * @param {string} [data.model] 车辆型号
 * @param {string} [data.driverName] 驾驶员姓名
 * @param {string} [data.driverPhone] 驾驶员电话
 * @param {string} [data.driverLicense] 驾驶证号
 * @param {Array} [data.photos] 车辆照片列表
 * @returns {Promise} 返回Promise对象，表示更新操作的结果
 */
export function updateVehicle(data) {
  return request({
    url: '/system/vehicle',
    method: 'PUT',
    data: data
  })
}

/**
 * 删除车辆
 * @description 根据车辆ID删除指定车辆
 * @param {string|number} vehicleId 车辆ID
 * @returns {Promise} 返回Promise对象，表示删除操作的结果
 */
export function delVehicle(vehicleId) {
  return request({
    url: '/system/vehicle/' + vehicleId,
    method: 'DELETE'
  })
}